08. 反向传播算法:示例(第一部分)
反向传播算法:示例(第一部分)
现在我们继续学习反向传播算法过程示例,思考一个网络包含两个输入[x_1, x_2],包含三个神经元的单个隐藏层[h_1, h_2, h_3]和单个输出y。

待更新的权重矩阵是W^1连接了输入和隐藏层,并且W^2 连接了隐藏层和输出。请注意在我们例子中W^2 是一个向量,而不是矩阵,因为我们只有一个输出。
10 反向传播算法示例 A V3 最后一节
权重更新过程的思路如下:
为了更新权重,我们需要网络的误差。为了找到网络误差,我们需要网络输出,并找到网络输出,我们需要隐藏层的数值,即向量\bar {h}。
\bar{h}=[h_1, h_2, h_3]
方程式 8
通过输入向量及其对应权重矩阵 W^1的简单线性组合,然后使用激活函数,计算向量\bar {h}每个要素。

方程式9
现在我们需要找到这个网络的输出,y。通过向量\bar{h}及其对应权重向量W^2的线性组合,以类似的方式计算得出y。

方程式10
反向传播算法过程的目的在于使用损失函数来最小化误差。为此,我们需要计算所有权重的偏导数。
由于我们刚刚找到了输出 y,现在我们可以通过找到更新后的数值\Delta W_{ij}^k,最小化误差。
上标 k 表示我们需要更新每个 k 层。
正如我们前面所说,权重更新值\Delta W_{ij}^k使用梯度进行计算,具体如下:
\Delta W_{ij}^k=\alpha (-\frac{\partial E}{\partial W})
因此:
\Delta W_{ij}^k=\alpha (-\frac{\partial E}{\partial W})=-\frac{\alpha}{2} \frac{\partial (d-y)^2}{\partial W_{ij}}=-2 \frac{\alpha}{2} \frac{\partial (d-y)}{\partial W_{ij}}
可以简化为:
\Delta W_{ij}^k=\alpha(d-y) \frac{\partial y}{\partial W_{ij}}
方程式11
(请注意d是一个常数值,所以它的偏导数就是零)
每个权重相关的输出偏导数,定义了梯度,通常由希腊字母\delta表示。

方程式12
我们将使用链式法则得到梯度的所有要素。
如果你对链式法则有把握,了解如何应用,请跳到下一个视频,继续学习我们的示例。如果没有,你需要跟随 Luis 学习几分钟,他会带你学习这个过程!
Regra da cadeia